Skip to content

add STMiner#254

Merged
mikkelnrasmussen merged 4 commits into
scverse:mainfrom
PSSUN:main
Aug 19, 2025
Merged

add STMiner#254
mikkelnrasmussen merged 4 commits into
scverse:mainfrom
PSSUN:main

Conversation

@PSSUN
Copy link
Copy Markdown
Contributor

@PSSUN PSSUN commented Jun 16, 2025

Name of the tool: STMiner

Short description: Gene-centric spatial transcriptomics for deciphering complex spatial omics data

How does the package use scverse data structures (please describe in a few sentences): STMiner uses AnnData as standardized input and output, and all operations are based on AnnData. STMiner also supports reading data in multiple formats (CSV, gem, etc.) and converting them into AnnData for unified operations.

  • The code is publicly available under an OSI-approved license
  • The package provides versioned releases
  • The package can be installed from a standard registry (e.g. PyPI, conda-forge, bioconda)
  • Automated tests cover essential functions of the package and a reasonable range of inputs and conditions [^1]
  • Continuous integration (CI) automatically executes these tests on each push or pull request [^2]
  • The package provides API documentation via a website or README[^3]
  • The package uses scverse datastructures where appropriate (i.e. AnnData, MuData or SpatialData and their modality-specific extensions)
  • I am an author or maintainer of the tool and agree on listing the package on the scverse website

PSSUN and others added 3 commits June 16, 2025 23:17
Name of the tool: STMiner

Short description: Gene-centric spatial transcriptomics for deciphering complex spatial omics data

How does the package use scverse data structures (please describe in a few sentences): STMiner uses AnnData as standardized input and output, and all operations are based on AnnData. STMiner also supports reading data in multiple formats (CSV, gem, etc.) and converting them into AnnData for unified operations.

- [x] The code is publicly available under an [OSI-approved](https://opensource.org/licenses/alphabetical) license
- [x] The package provides versioned releases
- [x] The package can be installed from a standard registry (e.g. PyPI, conda-forge, bioconda)
- [x] Automated tests cover essential functions of the package and a reasonable range of inputs and conditions [^1]
- [x] Continuous integration (CI) automatically executes these tests on each push or pull request [^2]
- [x] The package provides API documentation via a website or README[^3]
- [x] The package uses scverse datastructures where appropriate (i.e. AnnData, MuData or SpatialData and their modality-specific extensions)
- [x] I am an author or maintainer of the tool and agree on listing the package on the scverse website

<!--
To add a new package to the list, please add a `meta.yaml` file to the `packages` directory and
copy the checklist from the README here and fill it out.
-->
@mikkelnrasmussen
Copy link
Copy Markdown
Collaborator

Hi @PSSUN,

Thanks for submitting STMiner — it looks like a very nice tool! I have a few comments related to the checklist:

The package provides versioned releases

While you do have versioned releases on PyPI, I’d recommend also tagging them on GitHub and/or using the GitHub Releases feature.

Automated tests cover essential functions of the package and a reasonable range of inputs and conditions

According to our guidelines, all user-facing functions should be tested. At the moment, this doesn’t seem to be fully covered. Please consider adding tests for most or all of your public API, ideally with checks for expected outputs.

The package provides API documentation via a website or README

By API documentation, we mean a structured listing of all functions/classes/methods, including their arguments and expected inputs/outputs. A good example is the scirpy API docs. I recommend looking into Sphinx Autodoc plugin to generate this kind of documentation.

Looking forward to your updates!

Best regards,
Mikkel

@PSSUN
Copy link
Copy Markdown
Contributor Author

PSSUN commented Jun 25, 2025

Hi, @mikkelnrasmussen ,

Thank you so much for reviewing STMiner and providing valuable suggestions! Here are the improvements we've made based on your feedback:

  1. Added Github release: v1.1.0.
  2. Documented full API: API Reference.
  3. Expanded test coverage​​ for the full pipeline: Test Scripts.

The test scripts incorporate all functions used in the basic pipeline. These functions are consolidated into a single method to minimize I/O operations, thereby reducing test execution time.

Best regards,
Peisen Sun

@PSSUN
Copy link
Copy Markdown
Contributor Author

PSSUN commented Jul 30, 2025

Hi, @mikkelnrasmussen ,

Apologies for the interruption, I just want to ensure we're on the right path.
Any updates? : )

@mikkelnrasmussen
Copy link
Copy Markdown
Collaborator

Hi @PSSUN,

Sorry about the delay. I just got back from vacation - will have a look tomorrow.

Best,
Mikkel

@mikkelnrasmussen
Copy link
Copy Markdown
Collaborator

Hi @PSSUN,

The API documentation and the addition of GitHub releases look great!

It would be great if you could add test coverage for all user-facing API methods. As far as I can tell, the following functions currently lack corresponding tests:

  • compare_gene_to_genes
  • compare_image_to_genes
  • get_custom_pattern
  • merge_bin
  • plot_gmm
  • set_adata
  • plot_intersection

Best,
Mikkel

@PSSUN
Copy link
Copy Markdown
Contributor Author

PSSUN commented Aug 11, 2025

Hi @mikkelnrasmussen ,

Thank you so much for your review! Your feedback has been a great help in improving STMiner.

Following your suggestions, I've added tests for the functions you mentioned (https://github.com/xjtu-omics/STMiner/blob/main/tests/test_STMiner.py). This helped me identify and fix a few bugs.

I have temporarily disabled the compare_image_to_genes function and its API documentions, as it's an unstable feature that is not part of the current release. All other functions are now working correctly.

Copy link
Copy Markdown
Collaborator

@mikkelnrasmussen mikkelnrasmussen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @PSSUN,

Thanks for adding the tests and glad to hear it helped identify some bugs! Everything looks good to me now.

Best,
Mikkel

@mikkelnrasmussen mikkelnrasmussen merged commit 12b46a0 into scverse:main Aug 19, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants